package com.kid.kidliving.commodity.controller;

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import com.kid.common.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

@RestController
@Slf4j
public class TestController {
    @RequestMapping("/test")
    public R testUpload() throws com.aliyuncs.exceptions.ClientException, FileNotFoundException {
        log.info("test Upload");
// yourEndpoint 填写 Bucket 所在地域对应的 Endpoint。以华东 1（杭州）为例，Endpoint填写为 https://oss-cn-hangzhou.aliyuncs.com。
        String endpoint = "oss-cn-beijing.aliyuncs.com";
// 阿里云账号 AccessKey 拥有所有 API 的访问权限，风险很高。强烈建议您创建并使用 RAM用户进行 API 访问或日常运维，请登录 RAM 控制台创建 RAM 用户。
        String accessKeyId = "LTAI5t7Se24XKDS1mjzCVDCa";
        String accessKeySecret = "Pz5EJN4VJxbIUEPcgeuwhYBE1ZJie5";
// 创建 OSSClient 实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 填写本地文件的完整路径。如果未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件流。
        InputStream inputStream = new FileInputStream("C:\\Users\\shens\\Pictures\\Screenshots\\屏幕截图(3).png");
// 依 次 填 写 Bucket 名 称 （ 例 如 examplebucket ） 和 Object 完 整 路 径 （ 例 如exampledir / exampleobject.txt）。Object 完整路径中不能包含 Bucket 名称。
        ossClient.putObject("kidliving-10000", "1.png", inputStream);
// 关闭 OSSClient。
        ossClient.shutdown();
        return null;
    }

    @Resource
    private OSSClient ossClient;

    @RequestMapping("/test2")
    public R testUpload2() throws FileNotFoundException {

        InputStream inputStream = new FileInputStream("C:\\Users\\shens\\Pictures\\Screenshots\\屏幕截图(4).png");
        ossClient.putObject("kidliving-10000", "2.png", inputStream);
        ossClient.shutdown();
        return R.ok("success");
    }
}
